package com.cykj.pos.mapper;

import com.cykj.pos.domain.BizMerchOrder;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.cykj.pos.domain.BizPosType;
import com.cykj.pos.domain.BizTimeoutIntegral;
import com.cykj.pos.domain.dto.OrderDTO;
import com.cykj.pos.profit.dto.BizMerchOrderDTO;
import com.cykj.pos.profit.dto.MessageDTO;

import java.util.List;

/**
 * 订单Mapper接口
 *
 * @author weijianbo
 * @date 2021-02-24
 */
public interface BizMerchOrderMapper extends BaseMapper<BizMerchOrder> {
    /**
     * 根据商户id查询订单列表
     * @param orderDTO
     * @return
     */
    List<BizMerchOrder> selectOrderListByMerchId(OrderDTO orderDTO);

    /**
     * 根据申请商户id查询订单列表
     * @param orderDTO
     * @return
     */
    List<BizMerchOrder> selectOrderListByParentId(OrderDTO orderDTO);

    /**
     * 根据订单id查询订单
     * @param orderDTO
     * @return
     */
    BizMerchOrder selectOrdertById(OrderDTO orderDTO);
    /**
     * 根据直接伙伴id查询订单
     * @param orderDTO
     * @return
     */
    BizMerchOrder selectOrdertByParentId(OrderDTO orderDTO);

    /**
     * 根据消息id查询订单信息
     * @param messageDTO
     * @return
     */
    BizMerchOrder selectMsgMerchOrderByMsgId(MessageDTO messageDTO);

    /**
     * 根据orderNo更改订单状态
     * @param bizTimeoutIntegral
     */
    void updateOrderByOrderNo(BizTimeoutIntegral bizTimeoutIntegral);

    /**
     * 通过orderId查询临时积分表
     * @param orderId
     * @return
     */
    BizTimeoutIntegral queryOrderByOrderId(Long orderId);

    /**
     * 通过id查询pos类型
     * @param posTypeId
     * @return
     */
    BizPosType queryPosTypeById(Long posTypeId);

    /**
     * 修改我的订单列表 加上类型
     * @param orderDTO
     * @return
     */
    List<BizMerchOrderDTO> getOrderListByMerchIdAddType(OrderDTO orderDTO);

    /**
     * 根据申请用户查找订单
     * @param orderDTO
     * @return
     */
    List<BizMerchOrderDTO> selectOrderListByMerchIdAddType(OrderDTO orderDTO);

    /**
     * 根据订单id查询订单 加上pos机类型
     * @param orderDTO
     * @return
     */
    BizMerchOrderDTO selectOrdertByIdAddType(OrderDTO orderDTO);

    /**
     * 根据直接伙伴id查询订单 加上pos机类型
     * @param orderDTO
     * @return
     */
    BizMerchOrderDTO selectOrdertByParentIdAddType(OrderDTO orderDTO);
}
